inspector: Dispose the recorder properly
authorMatthias Clasen <mclasen@redhat.com>
Sat, 18 Jul 2020 02:44:01 +0000 (22:44 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 18 Jul 2020 02:54:10 +0000 (22:54 -0400)
We were leaking children here.

gtk/inspector/recorder.c
gtk/inspector/recorder.ui

index a8a536f2afc93db0e2c674da1e9790256288b12a..c07d63b01beff7793745db0f9e8be1e25c4ae819 100644 (file)
@@ -61,6 +61,7 @@ struct _GtkInspectorRecorder
   GListStore *render_node_root_model;
   GtkSingleSelection *render_node_selection;
 
+  GtkWidget *box;
   GtkWidget *recordings_list;
   GtkWidget *render_node_view;
   GtkWidget *render_node_list;
@@ -1168,6 +1169,7 @@ gtk_inspector_recorder_dispose (GObject *object)
 {
   GtkInspectorRecorder *recorder = GTK_INSPECTOR_RECORDER (object);
 
+  g_clear_pointer (&recorder->box, gtk_widget_unparent);
   g_clear_object (&recorder->render_node_model);
   g_clear_object (&recorder->render_node_root_model);
   g_clear_object (&recorder->render_node_selection);
@@ -1202,6 +1204,7 @@ gtk_inspector_recorder_class_init (GtkInspectorRecorderClass *klass)
 
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/inspector/recorder.ui");
 
+  gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, box);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, recordings);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, recordings_list);
   gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, render_node_view);
index 100d51659b1dacfa9222dca6107112b984d45645..48bc98d4048221dc7140d307485a75240c2811e4 100644 (file)
@@ -2,7 +2,7 @@
   <object class="GListStore" id="recordings"/>
   <template class="GtkInspectorRecorder" parent="GtkWidget">
     <child>
-      <object class="GtkBox">
+      <object class="GtkBox" id="box">
         <property name="orientation">vertical</property>
         <child>
           <object class="GtkBox">